#ifndef SOLOADER_PTHREAD_PATCH_H
#define SOLOADER_PTHREAD_PATCH_H

#include <pthread.h>

int pthread_mutex_init_fake(pthread_mutex_t **uid, const pthread_mutexattr_t *mutexattr);
int pthread_mutex_destroy_fake(pthread_mutex_t **uid);
int pthread_mutex_lock_fake(pthread_mutex_t **uid);
int pthread_mutex_unlock_fake(pthread_mutex_t **uid);
int pthread_cond_init_fake(pthread_cond_t **cnd, const int *condattr);
int pthread_cond_broadcast_fake(pthread_cond_t **cnd);
int pthread_cond_signal_fake(pthread_cond_t **cnd);
int pthread_cond_destroy_fake(pthread_cond_t **cnd);
int pthread_cond_wait_fake(pthread_cond_t **cnd, pthread_mutex_t **mtx);
int pthread_cond_timedwait_fake(pthread_cond_t **cnd, pthread_mutex_t **mtx, const struct timespec *t);
int pthread_create_fake(pthread_t *thread, const void *unused, void *entry, void *arg);
int pthread_once_fake(volatile int *once_control, void (*init_routine)(void));

#endif
